VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "CHX2SSym"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'
'   Copyright (c) 2004-08, Intergraph Corporation. All rights reserved.
'
'   CHEx2ShellSym.cls
'   ProgID:         SP3DHeatX2EndShellCompAsm.CHX2SSym
'   Author:         BBK
'   Creation Date:  Monday, Nov 01, 2003

'   This is an Exchanger Shell component Body Symbol.
'   This symbol is Fully parametric symbol, consists of 77 inputs and 10 outputs.It has 2 aspects one is Simple Physical
'   another is ReferenceGeometry. Among them 8 are physical and 2 is ReferenceGeometry. It has Five nozzles and all
'   are fully parametric.
'   This is an equipment component symbol using the Smart Occurrence instead of Part occurrence. The symbol would be of
'   two parts, one smart occurrence symbol and the other is the custom assembly definition. This file defines the symbol
'   part of the complete component and the nozzles are created in the definition(CHEx2ShellDef.cls)
'   This is a Dow Equipment E-161 Exchanger Shell symbol.
'
'   Change History:
'   dd.mmm.yyyy         who             change description
'   -----------         ---             ------------------
'
'   01.Nov.2004     BBK     Initial Creation from CHEx2EndShell.cls
'   20.May.2005    MS  CR-76070: Modified the nozzle creation code(as members),added datum points.
'   11.Jul.2006      kkc                    DI 95670-Replaced names with initials in the revision history.
'   22.Aug.2008     GL      TR 110721 Added the insulation aspect and required paramters
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Option Explicit

Private Const MODULE = "CHX2SSym:"  'Used for error messages

Private m_oSymbolHelper As IJSymbolHelper
    
' Declaration of the User Symbol Services interface
Implements IJDUserSymbolServices


Private Sub Class_Initialize()
    
    Const METHOD = "Class_Initialize:"
    On Error GoTo ErrorHandler
    
    Set m_oSymbolHelper = New SymbolServices
    m_oSymbolHelper.ProjectName = "SP3DHeatX2EndShellCompAsm"
    m_oSymbolHelper.ClassName = "CHX2SSym"
 
'' Inputs
    m_oSymbolHelper.NumInputs = 6
    m_oSymbolHelper.AddInputDef 1, "VesselDiameter", "Exchanger Outer Diameter", 1.4986
    m_oSymbolHelper.AddInputDef 2, "VesselHeight", "Shell Body Height", 7.30885
    m_oSymbolHelper.AddInputDef 3, "CPtoFace", "Control point to Shell Top flange", 1.524
    m_oSymbolHelper.AddInputDef 4, "FaceDiameter", "Flange Diameter", 0.9398
    m_oSymbolHelper.AddInputDef 5, "FaceThickness", "Flange Thickness", 0.0508
    m_oSymbolHelper.AddInputDef 6, "InsulationThickness", "Insulation Thickness", 0.025
    
' Outputs
    m_oSymbolHelper.NumOutputs = 8
    m_oSymbolHelper.AddOutputDef 1, "ShellFlange", "Shell Flange", SimplePhysical
    m_oSymbolHelper.AddOutputDef 2, "ShellBodyCyl", "Cylindrical Exchanger Shell Body", SimplePhysical
    m_oSymbolHelper.AddOutputDef 3, "ShellBottomFlange", "Shell Bottom Flange", SimplePhysical
    m_oSymbolHelper.AddOutputDef 4, "VesselAxisPoint", "Reference Point on axis of vessel at Coontrol Point", ReferenceGeometry
    m_oSymbolHelper.AddOutputDef 5, "DefaultSurface", "Reference Surface at the CP of vessel", ReferenceGeometry
     m_oSymbolHelper.AddOutputDef 6, "ShellFlangeInsulation", "Shell Flange Insulation", Insulation
    m_oSymbolHelper.AddOutputDef 7, "ShellBodyCylInsulation", "Cylindrical Exchanger Shell Body Insulation", Insulation
    m_oSymbolHelper.AddOutputDef 8, "ShellBottomFlangeInsulation", "Shell Bottom Flange Insulation", Insulation
    

' Aspects
    m_oSymbolHelper.NumAspects = 3
    m_oSymbolHelper.AddAspectDef 1, "Physical", "Physical", SimplePhysical
    m_oSymbolHelper.AddAspectDef 2, "RefGeometry", "ReferenceGeometry", ReferenceGeometry
    m_oSymbolHelper.AddAspectDef 3, "Insulation", "Insulation", Insulation
     
    Exit Sub
    
ErrorHandler:
Err.Raise Err.Number, Err.Source & " " & METHOD, Err.Description, _
    Err.HelpFile, Err.HelpContext

End Sub

Private Sub Class_Terminate()
    Set m_oSymbolHelper = Nothing
End Sub

' note that the rest of the code is generated by the Symbol Wizard and should not need to be modified
Public Function IJDUserSymbolServices_InstanciateDefinition( _
                ByVal CodeBase As String, _
                ByVal defParameters As Variant, _
                ByVal ActiveConnection As Object) As Object
    ' call symbol services default implementation of this method
    Const METHOD = "IJDUserSymbolServices_InstanciateDefinition:"
On Error GoTo Errx
    Set IJDUserSymbolServices_InstanciateDefinition = m_oSymbolHelper.InstanciateDefinition(CodeBase, defParameters, ActiveConnection)
    
    Exit Function

Errx:
    Err.Raise Err.Number, Err.Source & " " & METHOD, Err.Description, _
    Err.HelpFile, Err.HelpContext
End Function
Public Function IJDUserSymbolServices_GetDefinitionName(ByVal definitionParameters As Variant) As String
Const METHOD = "IJDUserSymbolServices_GetDefinitionName:"
  On Error GoTo Errx
      IJDUserSymbolServices_GetDefinitionName = m_oSymbolHelper.ProjectName + "." + m_oSymbolHelper.ClassName
    
    Exit Function

Errx:
    Err.Raise Err.Number, Err.Source & " " & METHOD, Err.Description, _
    Err.HelpFile, Err.HelpContext
End Function

Public Sub IJDUserSymbolServices_InitializeSymbolDefinition(ByRef pSymbolDefinition As IJDSymbolDefinition)
Const METHOD = "IJDUserSymbolServices_InitializeSymbolDefinition:"
On Error GoTo Errx
    m_oSymbolHelper.InitializeSymbolDefinition pSymbolDefinition
Exit Sub

Errx:
    Err.Raise Err.Number, Err.Source & " " & METHOD, Err.Description, _
    Err.HelpFile, Err.HelpContext
      
End Sub

Public Sub IJDUserSymbolServices_InvokeRepresentation(ByVal sblOcc As Object, _
                    ByVal repName As String, _
                    ByVal outputcoll As Object, _
                    ByRef arrayOfInputs())
Const METHOD = "IJDUserSymbolServices_InvokeRepresentation:"
On Error GoTo Errx
    m_oSymbolHelper.InvokeRepresentation sblOcc, repName, outputcoll, arrayOfInputs
        
Exit Sub

Errx:
    Err.Raise Err.Number, Err.Source & " " & METHOD, Err.Description, _
            Err.HelpFile, Err.HelpContext
End Sub

Public Function IJDUserSymbolServices_EditOccurence(ByRef pSymbolOccurence As Object, ByVal transactionMgr As Object) As Boolean
Const METHOD = "IJDUserSymbolServices_EditOccurence:"
On Error GoTo Errx
    ' The definition uses the generic EditOccurrence command
    IJDUserSymbolServices_EditOccurence = False
        Exit Function

Errx:
    Err.Raise Err.Number, Err.Source & " " & METHOD, Err.Description, _
            Err.HelpFile, Err.HelpContext

End Function




